//用于将多层Map结构数据转换成JSON字符串、以及解析JSON字符串为Map结构数据。

function MapToJSON(map) {
  // console.log(map);
  let obj = {};
  for (let [key, value] of map) {
    if (value instanceof Map) {
      obj[key] = MapToJSON(value);
    } else {
      obj[key] = value;
    } 
  }
  return JSON.stringify(obj);
}

function JSONToMap(json) {
  let obj = JSON.parse(json);
  // console.log(obj);

  function parseValue(value) {
    if (typeof value === 'string' && value.startsWith('{') && value.endsWith('}')) {
      return JSONToMap(value); // 递归调用JSONToMap处理嵌套对象
    } else {
      return value;
    }
  }

  let map = new Map();
  for (let key in obj) {
    if (obj[key] instanceof Object) {
      map.set(key, obj[key]);
    } else {
      map.set(key, parseValue(obj[key]));
    }
  }
  return map;
}
export default { JSONToMap, MapToJSON }